package com.itheima.wms.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.wms.mapper.GoodsTypeMapper;
import com.itheima.wms.pojo.GoodsType;
import com.itheima.wms.pojo.GoodsTypeDto;
import com.itheima.wms.service.GoodsTypeService;
import com.itheima.wms.utils.PageBean;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

@RequiredArgsConstructor
@Service
public class GoodsTypeServiceImpl implements GoodsTypeService {

    private final GoodsTypeMapper goodsTypeMapper;

    @Override
    public PageBean<GoodsType> goodsTypePage(GoodsTypeDto goodsTypeDto) {

        Integer current = goodsTypeDto.getCurrent();

        Integer size = goodsTypeDto.getSize();

        PageHelper.startPage(current, size);

        Page<GoodsType> goodsTypes = goodsTypeMapper.goodsTypePage(goodsTypeDto);

        long total = goodsTypes.getTotal();
        int pageSize = goodsTypes.getPageSize();

        PageBean<GoodsType> pageBean = new PageBean<>(goodsTypes, total, pageSize);

        return pageBean;
    }

    @Override
    public void insert(GoodsType goodsType) {
        goodsTypeMapper.insert(goodsType);
    }

    @Override
    public void delete(Long id) {
        goodsTypeMapper.delete(id);
    }

    @Override
    public void update(GoodsType goodsType) {
        goodsTypeMapper.update(goodsType);
    }

    @Override
    public GoodsType getgoodsTypeById(Long id) {
        GoodsType goodsType = goodsTypeMapper.getgoodsTypeById(id);
        return goodsType;
    }

    @Override
    public List<GoodsType> vagueQueryGoodsType(GoodsTypeDto goodsTypeDto) {
        Page<GoodsType> goodsTypes = goodsTypeMapper.goodsTypePage(goodsTypeDto);
        List<GoodsType> goodsTypeList = goodsTypes.getResult();
        return goodsTypeList;
    }
}
